package com.probox.common.entity.service.customer;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.customer.LevelPrivilege;
import com.probox.common.entity.vo.customer.LevelPrivilegeVo;
import com.probox.customer.api.domain.CreateInfoVo;

import java.util.List;

/**
 * 自定义权益Service接口
 *
 * @author zhusiyu
 * @date 2021-05-27
 */
public interface ILevelPrivilegeService extends IService<LevelPrivilege> {

    /**
     * @return
     */
    public LevelPrivilege selectByName(String value);

    /**
     * 查询自定义权益
     *
     * @param privilegeUid 自定义权益ID
     * @return 自定义权益
     */
    public LevelPrivilege selectLevelPrivilegeById(Long privilegeUid);


    /**
     * 查询自定义权益列表
     *
     * @param levelPrivilege 自定义权益
     * @return 自定义权益集合
     */
    public List<LevelPrivilege> queryList(LevelPrivilege levelPrivilege);


    /**
     * 新增自定义权益
     *
     * @param levelPrivilege 自定义权益
     * @return 结果
     */
    public boolean insertLevelPrivilege(LevelPrivilege levelPrivilege);

    /**
     * 修改自定义权益
     *
     * @param levelPrivilege 自定义权益
     * @return 结果
     */
    public boolean updateLevelPrivilege(LevelPrivilege levelPrivilege);

    /**
     * 批量删除自定义权益
     *
     * @param privilegeUids 需要删除的自定义权益ID
     * @return 结果
     */
    public boolean deleteLevelPrivilegeByIds(Long[] privilegeUids);


    public LevelPrivilegeVo getprivilegeLevelInfo(String privilegeName);

    public List<LevelPrivilege> getprivilegeInfoList();

    /**
     * 获取权益列表
     * @return
     */
    public List<LevelPrivilege> getPrivilegeList();

    /**
     * 新增默认权益信息
     *
     * @return
     */
    public Boolean saveDefaultPrivilegeAndDefinition(CreateInfoVo createInfoVo);
}
